package com.yanqu.road.entity.activity.dafuweng;

import com.yanqu.road.entity.activity.ActivityInfo;
import com.yanqu.road.entity.enums.activity.dafuweng.eDaFuWengCardType;
import com.yanqu.road.entity.enums.activity.dafuweng.eDaFuWengEventType;

import java.util.List;
import java.util.Map;

/**
 * @Author wpj
 * @Date 2021/1/7
 */
public class DFWConfig {
    ActivityInfo activityInfo;
    List<DFWMapConfig> dfwMapConfigList; // 地图配置
    Map<Integer, DFWBuildingConfig> dfwBuildingConfigMap; // 建筑配置
    Map<Integer, DFWEvent> dfwEventMap; // 事件配置
    // Map<boss类型，boss配置>
    Map<Integer, DFWBossConfig> bossConfigMap; // boss配置
    // 卡片ID，卡片类型
    Map<Integer, eDaFuWengCardType> cardConfigMap; // 卡片配置
    Map<Integer, DFWRebateConfig> rebateConfigMap; // 返利配置

    int maxEnergy; // 最大体力
    int initEnergy; // 初始体力
    int energyRecoverySecond; // 体力恢复1点所需秒数
    int energyItemId; // 体力恢复道具ID

    int unionMaxAddition; // 商会最大加成
    int unionMinAddition; // 商会最小加成
    int zaoYaoAddition; // 造谣加成
    int zhuFuAddition; // 祝福加成
    int unionAdditionRecoverySecond; // 商会加成恢复1%所需秒数
    int unionBeatBackTimes; // 反击次数
    int zaoYaoNewsCount; // 造谣条数
    int zhuFuNewsCount; // 祝福条数
    int effectiveNewsCount; // 有效情报条数
    int unEffectiveNewsCount; // 无效情报条数

    int baseDamage; // 基础伤害
    int freeBattleTimes; // 免费战斗次数
    String battleCost; // 追捕消耗
    int yongBingCardDamage; // 佣兵卡伤害

    String cardIdList; // 全部卡片ID
    int randomCardId; // 随机卡ID

    String autoEventUnlockGold;            // 自动事件解锁金币
    String secretBigRewardNumWeight;    //密道稀有奖励数量权重
    String secretBigRewardPool;         //密道稀有奖励奖池
    String secretNormalRewardPool;      //密道普通奖励奖池
    String secretReRollPr;              //密道稀有奖励重摇概率
    String tenRollUnlock;

    int fastBattleYongBingCardLimit;     //快速击杀最多可以使用几个佣兵卡
    int fastBattleZhuiBuCardLimit;       //快速击杀需要几个追捕卡解锁

    int defaultDollId;
    List<Integer> dollIdList; // 人偶IDList
    int rollCostEnergy = 1; //掷色体力消耗

    String skinIdList = "";

    // Map<事件类型，技能>
    Map<eDaFuWengEventType, List<DFWEvent>> skillMap; // 技能表

    public int getRandomCardId() {
        return randomCardId;
    }

    public void setRandomCardId(int randomCardId) {
        this.randomCardId = randomCardId;
    }

    public int getEffectiveNewsCount() {
        return effectiveNewsCount;
    }

    public void setEffectiveNewsCount(int effectiveNewsCount) {
        this.effectiveNewsCount = effectiveNewsCount;
    }

    public int getUnEffectiveNewsCount() {
        return unEffectiveNewsCount;
    }

    public void setUnEffectiveNewsCount(int unEffectiveNewsCount) {
        this.unEffectiveNewsCount = unEffectiveNewsCount;
    }

    public int getEnergyItemId() {
        return energyItemId;
    }

    public void setEnergyItemId(int energyItemId) {
        this.energyItemId = energyItemId;
    }

    public int getYongBingCardDamage() {
        return yongBingCardDamage;
    }

    public void setYongBingCardDamage(int yongBingCardDamage) {
        this.yongBingCardDamage = yongBingCardDamage;
    }

    public void setRollCostEnergy(int rollCostEnergy) {
        this.rollCostEnergy = rollCostEnergy;
    }

    public void setSkinIdList(String skinIdList) {
        this.skinIdList = skinIdList;
    }

    public String getSkinIdList() {
        return skinIdList;
    }

    public Map<eDaFuWengEventType, List<DFWEvent>> getSkillMap() {
        return skillMap;
    }

    public void setSkillMap(Map<eDaFuWengEventType, List<DFWEvent>> skillMap) {
        this.skillMap = skillMap;
    }

    public int getRollCostEnergy() {
        return rollCostEnergy;
    }

    public int getDefaultDollId() {
        return defaultDollId;
    }

    public void setDefaultDollId(int defaultDollId) {
        this.defaultDollId = defaultDollId;
    }

    public List<Integer> getDollIdList() {
        return dollIdList;
    }

    public void setDollIdList(List<Integer> dollIdList) {
        this.dollIdList = dollIdList;
    }

    public Map<Integer, eDaFuWengCardType> getCardConfigMap() {
        return cardConfigMap;
    }

    public void setCardConfigMap(Map<Integer, eDaFuWengCardType> cardConfigMap) {
        this.cardConfigMap = cardConfigMap;
    }

    public String getAutoEventUnlockGold() {
        return autoEventUnlockGold;
    }

    public void setAutoEventUnlockGold(String autoEventUnlockGold) {
        this.autoEventUnlockGold = autoEventUnlockGold;
    }

    public String getTenRollUnlock() {
        return tenRollUnlock;
    }

    public void setTenRollUnlock(String tenRollUnlock) {
        this.tenRollUnlock = tenRollUnlock;
    }

    public String getCardIdList() {
        return cardIdList;
    }

    public void setCardIdList(String cardIdList) {
        this.cardIdList = cardIdList;
    }

    public int getZaoYaoNewsCount() {
        return zaoYaoNewsCount;
    }

    public void setZaoYaoNewsCount(int zaoYaoNewsCount) {
        this.zaoYaoNewsCount = zaoYaoNewsCount;
    }

    public int getZhuFuNewsCount() {
        return zhuFuNewsCount;
    }

    public void setZhuFuNewsCount(int zhuFuNewsCount) {
        this.zhuFuNewsCount = zhuFuNewsCount;
    }

    public int getMaxEnergy() {
        return maxEnergy;
    }

    public void setMaxEnergy(int maxEnergy) {
        this.maxEnergy = maxEnergy;
    }

    public int getInitEnergy() {
        return initEnergy;
    }

    public void setInitEnergy(int initEnergy) {
        this.initEnergy = initEnergy;
    }

    public int getEnergyRecoverySecond() {
        return energyRecoverySecond;
    }

    public void setEnergyRecoverySecond(int energyRecoverySecond) {
        this.energyRecoverySecond = energyRecoverySecond;
    }

    public int getUnionMaxAddition() {
        return unionMaxAddition;
    }

    public void setUnionMaxAddition(int unionMaxAddition) {
        this.unionMaxAddition = unionMaxAddition;
    }

    public int getUnionMinAddition() {
        return unionMinAddition;
    }

    public void setUnionMinAddition(int unionMinAddition) {
        this.unionMinAddition = unionMinAddition;
    }

    public int getUnionAdditionRecoverySecond() {
        return unionAdditionRecoverySecond;
    }

    public void setUnionAdditionRecoverySecond(int unionAdditionRecoverySecond) {
        this.unionAdditionRecoverySecond = unionAdditionRecoverySecond;
    }

    public int getZaoYaoAddition() {
        return zaoYaoAddition;
    }

    public void setZaoYaoAddition(int zaoYaoAddition) {
        this.zaoYaoAddition = zaoYaoAddition;
    }

    public int getZhuFuAddition() {
        return zhuFuAddition;
    }

    public void setZhuFuAddition(int zhuFuAddition) {
        this.zhuFuAddition = zhuFuAddition;
    }

    public int getUnionBeatBackTimes() {
        return unionBeatBackTimes;
    }

    public void setUnionBeatBackTimes(int unionBeatBackTimes) {
        this.unionBeatBackTimes = unionBeatBackTimes;
    }

    public int getFreeBattleTimes() {
        return freeBattleTimes;
    }

    public void setFreeBattleTimes(int freeBattleTimes) {
        this.freeBattleTimes = freeBattleTimes;
    }

    public String getBattleCost() {
        return battleCost;
    }

    public void setBattleCost(String battleCost) {
        this.battleCost = battleCost;
    }

    public int getBaseDamage() {
        return baseDamage;
    }

    public void setBaseDamage(int baseDamage) {
        this.baseDamage = baseDamage;
    }

    public Map<Integer, DFWBossConfig> getBossConfigMap() {
        return bossConfigMap;
    }

    public void setBossConfigMap(Map<Integer, DFWBossConfig> bossConfigMap) {
        this.bossConfigMap = bossConfigMap;
    }

    public ActivityInfo getActivityInfo() {
        return activityInfo;
    }

    public void setActivityInfo(ActivityInfo activityInfo) {
        this.activityInfo = activityInfo;
    }

    public List<DFWMapConfig> getDfwMapConfigList() {
        return dfwMapConfigList;
    }

    public void setDfwMapConfigList(List<DFWMapConfig> dfwMapConfigList) {
        this.dfwMapConfigList = dfwMapConfigList;
    }

    public Map<Integer, DFWBuildingConfig> getDfwBuildingConfigMap() {
        return dfwBuildingConfigMap;
    }

    public void setDfwBuildingConfigMap(Map<Integer, DFWBuildingConfig> dfwBuildingConfigMap) {
        this.dfwBuildingConfigMap = dfwBuildingConfigMap;
    }

    public Map<Integer, DFWEvent> getDfwEventMap() {
        return dfwEventMap;
    }

    public void setDfwEventMap(Map<Integer, DFWEvent> dfwEventMap) {
        this.dfwEventMap = dfwEventMap;
    }

    public DFWBuildingConfig getBuildingConfigByPosition(int position) {
        for (DFWBuildingConfig dfwBuildingConfig : getDfwBuildingConfigMap().values()) {
            if (dfwBuildingConfig.positionList.contains(position)) {
                return dfwBuildingConfig;
            }
        }
        return null;
    }

    public String getSecretBigRewardNumWeight() {
        return secretBigRewardNumWeight;
    }

    public String getSecretBigRewardPool() {
        return secretBigRewardPool;
    }

    public String getSecretNormalRewardPool() {
        return secretNormalRewardPool;
    }

    public String getSecretReRollPr() {
        return secretReRollPr;
    }

    public void setSecretBigRewardNumWeight(String secretBigRewardNumWeight) {
        this.secretBigRewardNumWeight = secretBigRewardNumWeight;
    }

    public void setSecretBigRewardPool(String secretBigRewardPool) {
        this.secretBigRewardPool = secretBigRewardPool;
    }

    public void setSecretNormalRewardPool(String secretNormalRewardPool) {
        this.secretNormalRewardPool = secretNormalRewardPool;
    }

    public void setSecretReRollPr(String secretReRollPr) {
        this.secretReRollPr = secretReRollPr;
    }

    public Map<Integer, DFWRebateConfig> getRebateConfigMap() {
        return rebateConfigMap;
    }

    public void setRebateConfigMap(Map<Integer, DFWRebateConfig> rebateConfigMap) {
        this.rebateConfigMap = rebateConfigMap;
    }

    public int getFastBattleYongBingCardLimit() {
        return fastBattleYongBingCardLimit;
    }

    public void setFastBattleYongBingCardLimit(int fastBattleYongBingCardLimit) {
        this.fastBattleYongBingCardLimit = fastBattleYongBingCardLimit;
    }

    public int getFastBattleZhuiBuCardLimit() {
        return fastBattleZhuiBuCardLimit;
    }

    public void setFastBattleZhuiBuCardLimit(int fastBattleZhuiBuCardLimit) {
        this.fastBattleZhuiBuCardLimit = fastBattleZhuiBuCardLimit;
    }
}
